"""
题目：
    口述快排，最优时间复杂度，最差时间复杂度，分别是什么情况？

答：
    快排，利用分治的思想。
    1. 首先，选择一个枢轴，也就是参考值，（挖个坑，问就是，随机选择，或者选择第一个数，或者三数取中，或者在值较少的时候使用插入排序）
    2. 然后，大于参考值的数放在右边，小于参考值的数放在左边，
    经过一轮上述操作会将数组分成两部分，
    然后在两部分分别再次调用上述过程，即可完成快速排序。

    关于时间复杂度：
    最好的情况是nlogn, 对应着，第一次选取的枢轴刚好就是整个数组的中间值，则划分的两部分是相对均匀的。以后每次都是划分的很均匀，这种情况就是nlogn。
    换个思路来说，如果从递归树角度来思考，就是递归树较为均匀。

    最差的情况n^2，对应着，待排序数组是正序或者逆序，每次选择参考值的时候，其中一侧为空，只有另一侧存在数字。
    换个思路来说，递归树退化成链表。
"""